﻿using System;
using Oxage.Common;

namespace Oxage.CNC.Models
{
	public class GCodeTransformer : IMachineCodeTransformer
	{
		#region Constructor
		public GCodeTransformer()
		{
		}
		#endregion

		#region Public methods
		public GCode Transform(GCode gcode, Matrix matrix)
		{
			throw new NotImplementedException();
		}

		public GCode Translate(GCode gcode, Vector3 vector)
		{
			throw new NotImplementedException();
		}

		public GCode Scale(GCode gcode, Vector3 vector)
		{
			throw new NotImplementedException();
		}

		public GCode Rotate(GCode gcode, Vector3 vector)
		{
			throw new NotImplementedException();
		}
		#endregion

		#region IMachineCodeTransformer Members
		public IMachineCode Transform(IMachineCode code, Matrix matrix)
		{
			return Transform(code as GCode, matrix) as IMachineCode;
		}

		public IMachineCode Translate(IMachineCode code, Vector3 vector)
		{
			return Translate(code as GCode, vector) as IMachineCode;
		}

		public IMachineCode Scale(IMachineCode code, Vector3 vector)
		{
			return Scale(code as GCode, vector) as IMachineCode;
		}

		public IMachineCode Rotate(IMachineCode code, Vector3 vector)
		{
			return Rotate(code as GCode, vector) as IMachineCode;
		}
		#endregion
	}
}
